GitHub 第一!这位 60 后程序员火了!
作者 | 胡巍巍
出品 | 程序人生(ID:coder_life)
“我希望所有的流行趋势都在中国,都在北京发布。这样我们就不用老坐这么长时间的飞机去美国,去欧洲了。”
第一位登上维密的中国超模刘雯,曾这样吐槽时尚圈。
她的烦恼,同样存在于科技圈。
和国内时尚圈相似的是,过去,国内开发者主要跟国外学技术。
其中,GitHub正是程序员们的拥趸之地。不过,比起以往的观摩,越来越多的中国开发者,开始在GitHub上大展身手。
2019年7月中旬,一个名为TDengine的物联网大数据平台项目,在GitHub上一经开源,迅速蹿升至榜首。
GitHub截图
TDengine背后的男人
项目背后的掌舵者,火速浮出水面——涛思数据创始人陶建辉,圈内人称Jeff君。
采访那天,陶建辉亲自下楼接笔者,体恤衫掖进裤子的装束,显得很精神。
电梯里,他说自己和CSDN创始人蒋涛是同龄人,不知为何,说到这里,他突然摸摸已经不太茂盛的头发。
后来他说,他掉头发不是因为敲代码,是遗传。
陶建辉,爱笑,也爱动。
采访中,说到激动处,嗓门会突然提高,椅子也跟着转个不停。
一个人的性格,和家庭教育密不可分,他的母亲也是个乐天派。
谁言寸草心,报得三春晖
1968年,陶建辉出生在湖南农村。母亲一人带着他和姐姐生活,父亲在湖南郴州工作。
因为家中没有劳力,母子三人颇为不顺。
小时候,生产队里给每户分鱼,草鱼、鲤鱼从来就没份,只能分到鲢鱼,鲢鱼便宜、土腥味又重,多数人家都不爱吃。
但是陶妈妈总是一笑而过,也不过多理论。
她为了赚钱,一心一意在家里绣“湘绣”。
这样一来,就没精力侍弄菜园里的菜。以至于,陶建辉和姐姐很是羡慕邻居们可以早早吃上黄瓜。
好在陶妈妈是个做菜好手,即便原料不够,也总能把粗陋食材,变成盘中美餐。搞得堂兄弟们,总是到他家蹭饭。
与一般绣娘的“好静”不同,陶妈妈在绣花时,总喜欢叫上其他绣娘,穿针引线之间,房间里充盈着她的笑声。
这样的性格被儿子继承,多年后,陶建辉能在创业不顺中爬起,全得益于从母亲身上继承的性格。
陶妈妈并非没有流过泪,读高中时,有次陶妈妈在和陶爸爸吵架中挨了拳脚,妈妈对陶建辉说,好希望他可以快点长大、来保护妈妈。
学习上,陶妈妈对他要求很严,除了安排挖菜地等不费力的活儿之外,其余时间一律把陶建辉摁在家里看书。
可以说,陶妈妈一方面性格乐观爱笑,一方面对孩子要求严格。
她的“两面派”,让陶建辉在勤奋的同时,不至于养成读成性格压抑的“书呆子”。
初中时,陶姐姐已经高中毕业,陶建辉就拿来姐姐的教材,提前学习高中课程。
邓公一句话,影响一辈子
1984年2月,邓小平和王震在上海,观看小学生操作简易电子计算机时,提出“计算机的普及要从娃娃做起” 。
很快,陶建辉所在学校收到几台电脑。作为尖子生,他成为同学中为数不多可以“摸电脑”的学生。
说“摸”一点没错,因为老师也不会用电脑。他只好买来谭浩强的书《BASIC语言程序设计》,课余自学敲代码。
高中后,陶建辉考上中国科技大学。大学期间,他给老师开发了LB膜天平系统,直到今天还有科大的学生,在用它写论文。
近水楼台先得月,陶建辉的姐姐困于做账之苦,于是给姐姐开发出名为以“建辉电脑”命名的财务软件,至今也仍在使用。
本科毕业后,陶建辉留学美国,学习天体物理专业。后进入摩托罗拉工作,不久后妻子也来到摩托罗拉工作。
在美国的生活很安逸,大公司、高收入、大房子。
正如陶建辉把公众号起名“爱倒腾的程序员”一样,安逸明显不是他的归宿。很快,他倒腾起了创业。
携妻带子回中国
几年前,国内互联网潮水高涨,陶建辉毅然卖掉美国三千多平的房子,携妻带子回到中国。
然而,回国后的生活并不顺利。
母亲肺癌去世,去世前,他带着儿子石头,来到病榻前为母亲拉琴,她看着孙子不停地说:“我石头长的好,琴拉的好。”
几年后的清明节,陶建辉带着儿子,来到母亲坟前,已经长成少年的儿子,一丝不苟地拉着提琴,对着天上的奶奶遥寄相思。
在奶奶坟前拉琴的石头
于此同时,陶建辉的创业一波三折,先是做主营手机推送的和信,被联发科收购;再后来,看准孕妇胎心测试仪的前景,开始做快乐妈咪,结果也是被收购。
被收购,说明创业已算成功。
但是,陶建辉心里始终有个洞。
直到创办涛思数据,这个洞才逐渐找到填充物。
TDengine三两事
涛思数据的主打产品是TDengine。
团队不大,仅有十个人,其中一位女员工,既是人事、也是财务。
小而美的开发团队,却暗藏大能量,他们中间有三位博士、四位海归。
开发TDengine耗时两年多,光陶建辉一人,就贡献三万多行代码。
比起前两次做短信和母婴,这次的产品很有技术含量:TDengine主要用于物联网大数据平台。
相比同类大数据平台,它速度快、性能高、成本低。假设原来企业需要十台服务器,现在一台足矣。
性能好的根本原因,是由于TDengin充分利用物联网数据的特点,比如银行账户的信息统计,缺少哪怕一条转账记录,都会影响结果。但是,物联网数据即便丢失十分钟的数据也没关系,因为用户关心的是一个时间段的趋势,而不是某一个特定时间点的值。
开源核心代码
谈到开源,这是陶建辉参悟人生后的一个梦。
他坦言,有谁会记住诗人李白时代的首富是谁呢?
真正被历史记住的未必是有钱人,而是创造精神财富的人。
这次开源TDengine,陶建辉心一横,索性把核心代码也推向开源(下为本次开源的部分代码)。
int vnodeInsertPointToCache(SMeterObj *pObj, char *pData) {
SCacheBlock *pCacheBlock;
SCacheInfo * pInfo;
SCachePool * pPool;
pInfo = (SCacheInfo *)pObj->pCache;
pPool = (SCachePool *)vnodeList[pObj->vnode].pCachePool;
if (pInfo->numOfBlocks == 0) {
if (vnodeAllocateCacheBlock(pObj) < 0) {
return -1;
}
}
if (pInfo->currentSlot < 0) return -1;
pCacheBlock = pInfo->cacheBlocks[pInfo->currentSlot];
if (pCacheBlock->numOfPoints >= pObj->pointsPerBlock) {
if (vnodeAllocateCacheBlock(pObj) < 0) return -1;
pCacheBlock = pInfo->cacheBlocks[pInfo->currentSlot];
}
for (int col = 0; col < pObj->numOfColumns; ++col) {
memcpy(pCacheBlock->offset[col] + pCacheBlock->numOfPoints * pObj->schema[col].bytes, pData,
pObj->schema[col].bytes);
pData += pObj->schema[col].bytes;
}
__sync_fetch_and_sub(&pObj->freePoints, 1);
pCacheBlock->numOfPoints++;
pPool->count++;
return 0;
}
另一个原因,则是因为TDengine的存储引擎和计算引擎特别重要,它之所以能提速,主要是由于存储和计算,都对物联网数据做了很大的优化。
对于开源后的打算,陶建辉说,TDengine肯定还会有Bug,所以要下功夫“杀死虫子”,同时还要提供功能更强大的流式计算、以及支持各种各样的工业数据采集协议。
当然,他也希望,有更多的贡献者,可以参与到TDengine的开发中。
51岁,仍在路上
不是所有人,都可以像“中国第一程序员”求伯君那样,46岁功成名退、退休归隐。
相反,51岁的程序员,在国内程序员就是吃青春饭的论调下,更值得鼓励!不服输、不服老,是中国程序员该有的底气。
正如小米集团技术委员会主席崔宝秋的评论所言:“我们需要为陶总这种老程序员的技术精神鼓个掌。谁说35岁之后的程序员就价值不大了呢?”
这一生,只做个代码工匠,又有何妨?写代码,当然可以一辈子!
热 文 推 荐